/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vista.personas.profesionales;

import modelo.personas.profesionales.GestorEspecialidad;
import modelo.personas.profesionales.Especialidad;
import vista.administracion.GestorVistaAdministracionPnl;
import java.util.Iterator;
import java.util.List;

/**
 *
 * @author Raul
 */
public class GestorEspecialidadesABM extends GestorVistaAdministracionPnl {
    
    private GestorEspecialidad gestorModelo = new GestorEspecialidad();
    
    public GestorEspecialidad getGestorModelo() {
        return gestorModelo;
    }

    public void setGestorModelo(GestorEspecialidad gestorModelo) {
        this.gestorModelo = gestorModelo;
    }
    
    @Override
    public void inicializarVista(){
        super.inicializarVista();
        getFormulario().setearTituloPanelTabla("Especialidades");
        getFormulario().agregarFiltrosDeBusqueda(gestorModelo.getFiltros());
        cargarModeloComponente();
    }
    
    @Override
    public void registrarNuevaEntidad() {
        GestorVistaEspecialidadIntFrm gestorEditor = new GestorVistaEspecialidadIntFrm();
        gestorEditor.abrirFormulario();
        super.agregarEditor(gestorEditor.getFormulario());
        //detectar cierre del formulario de edicion
        gestorEditor.getFormulario().addInternalFrameListener(new MyAdapter());
    }

    @Override
    public void modificar(Object modelo) {
        GestorVistaEspecialidadIntFrm gestorEditor = new GestorVistaEspecialidadIntFrm((Especialidad) modelo);
        gestorEditor.abrirFormulario();
        super.agregarEditor(gestorEditor.getFormulario());
        //detectar cierre del formulario de edicion
        gestorEditor.getFormulario().addInternalFrameListener(new MyAdapter());
    }

    @Override
    public void eliminar(Object modelo) {
        gestorModelo.setModelo((Especialidad) modelo);
        gestorModelo.eliminar();
    }
    
    @Override
    public void cargarModeloComponente(){
        Object[] titulos={ "","Especialidad", "Descripción"};
        int [] filas = {0,20,20};
        getFormulario().cargarTitulosTabla(titulos, filas);
    }
    
    @Override
    public void cargarDatos(java.util.Collection datos) {
        Iterator i=datos.iterator();
        //agregar las especialidades a la tabla
        while(i.hasNext()){
            Especialidad e = (Especialidad)i.next();
            Object[] fila={e,
                e.getNombre(),
                e.getDescripcion()};
            getFormulario().agregarFilaTabla(fila);
        }
    }
    
    @Override
    public int mostrarDialogoDeEliminacion(){
        return super.mostrarDialogoDeEliminacion(getFormulario(), "Esta seguro que desea eliminar\n"
                + " la especialidad seleccionada?");
    }
    
    @Override
    public void busquedaRapida(String criterioDeBusqueda, String texto) {
        cargarModeloComponente();
        cargarDatos(gestorModelo.buscar(texto, criterioDeBusqueda));
        getFormulario().getEditorPnl().removeAll();
        getFormulario().getEditorPnl().repaint();
    }
}
